// Generated from src/formula/parser/FormulaLexer.g4 by ANTLR 4.9.0-SNAPSHOT


import { ATN } from "antlr4ts/atn/ATN";
import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer";
import { CharStream } from "antlr4ts/CharStream";
import { Lexer } from "antlr4ts/Lexer";
import { LexerATNSimulator } from "antlr4ts/atn/LexerATNSimulator";
import { NotNull } from "antlr4ts/Decorators";
import { Override } from "antlr4ts/Decorators";
import { RuleContext } from "antlr4ts/RuleContext";
import { Vocabulary } from "antlr4ts/Vocabulary";
import { VocabularyImpl } from "antlr4ts/VocabularyImpl";

import * as Utils from "antlr4ts/misc/Utils";


export class FormulaLexer extends Lexer {
	public static readonly BLOCK_COMMENT = 1;
	public static readonly LINE_COMMENT = 2;
	public static readonly WHITESPACE = 3;
	public static readonly TRUE = 4;
	public static readonly FALSE = 5;
	public static readonly FIELD = 6;
	public static readonly COMMA = 7;
	public static readonly COLON = 8;
	public static readonly COLON_COLON = 9;
	public static readonly DOLLAR = 10;
	public static readonly DOLLAR_DOLLAR = 11;
	public static readonly STAR = 12;
	public static readonly OPEN_PAREN = 13;
	public static readonly CLOSE_PAREN = 14;
	public static readonly OPEN_BRACKET = 15;
	public static readonly CLOSE_BRACKET = 16;
	public static readonly L_CURLY = 17;
	public static readonly R_CURLY = 18;
	public static readonly BIT_STRING = 19;
	public static readonly REGEX_STRING = 20;
	public static readonly NUMERIC_LITERAL = 21;
	public static readonly INTEGER_LITERAL = 22;
	public static readonly HEX_INTEGER_LITERAL = 23;
	public static readonly DOT = 24;
	public static readonly SINGLEQ_STRING_LITERAL = 25;
	public static readonly DOUBLEQ_STRING_LITERAL = 26;
	public static readonly IDENTIFIER_VARIABLE = 27;
	public static readonly IDENTIFIER_UNICODE = 28;
	public static readonly IDENTIFIER = 29;
	public static readonly AMP = 30;
	public static readonly AMP_AMP = 31;
	public static readonly AMP_LT = 32;
	public static readonly AT_AT = 33;
	public static readonly AT_GT = 34;
	public static readonly AT_SIGN = 35;
	public static readonly BANG = 36;
	public static readonly BANG_BANG = 37;
	public static readonly BANG_EQUAL = 38;
	public static readonly CARET = 39;
	public static readonly EQUAL = 40;
	public static readonly EQUAL_GT = 41;
	public static readonly GT = 42;
	public static readonly GTE = 43;
	public static readonly GT_GT = 44;
	public static readonly HASH = 45;
	public static readonly HASH_EQ = 46;
	public static readonly HASH_GT = 47;
	public static readonly HASH_GT_GT = 48;
	public static readonly HASH_HASH = 49;
	public static readonly HYPHEN_GT = 50;
	public static readonly HYPHEN_GT_GT = 51;
	public static readonly HYPHEN_PIPE_HYPHEN = 52;
	public static readonly LT = 53;
	public static readonly LTE = 54;
	public static readonly LT_AT = 55;
	public static readonly LT_CARET = 56;
	public static readonly LT_GT = 57;
	public static readonly LT_HYPHEN_GT = 58;
	public static readonly LT_LT = 59;
	public static readonly LT_LT_EQ = 60;
	public static readonly LT_QMARK_GT = 61;
	public static readonly MINUS = 62;
	public static readonly PERCENT = 63;
	public static readonly PIPE = 64;
	public static readonly PIPE_PIPE = 65;
	public static readonly PIPE_PIPE_SLASH = 66;
	public static readonly PIPE_SLASH = 67;
	public static readonly PLUS = 68;
	public static readonly QMARK = 69;
	public static readonly QMARK_AMP = 70;
	public static readonly QMARK_HASH = 71;
	public static readonly QMARK_HYPHEN = 72;
	public static readonly QMARK_PIPE = 73;
	public static readonly SLASH = 74;
	public static readonly TIL = 75;
	public static readonly TIL_EQ = 76;
	public static readonly TIL_GTE_TIL = 77;
	public static readonly TIL_GT_TIL = 78;
	public static readonly TIL_LTE_TIL = 79;
	public static readonly TIL_LT_TIL = 80;
	public static readonly TIL_STAR = 81;
	public static readonly TIL_TIL = 82;
	public static readonly SEMI = 83;
	public static readonly ErrorCharacter = 84;

	// tslint:disable:no-trailing-whitespace
	public static readonly channelNames: string[] = [
		"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
	];

	// tslint:disable:no-trailing-whitespace
	public static readonly modeNames: string[] = [
		"DEFAULT_MODE",
	];

	public static readonly ruleNames: string[] = [
		"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", 
		"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "UNDERSCORE", 
		"HEX_DIGIT", "DEC_DIGIT", "DQUOTA_STRING", "SQUOTA_STRING", "BQUOTA_STRING", 
		"BLOCK_COMMENT", "LINE_COMMENT", "WHITESPACE", "TRUE", "FALSE", "FIELD", 
		"COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", "STAR", "OPEN_PAREN", 
		"CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", "L_CURLY", "R_CURLY", 
		"BIT_STRING", "REGEX_STRING", "NUMERIC_LITERAL", "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", 
		"DOT", "SINGLEQ_STRING_LITERAL", "DOUBLEQ_STRING_LITERAL", "IDENTIFIER_VARIABLE", 
		"IDENTIFIER_UNICODE", "IDENTIFIER", "AMP", "AMP_AMP", "AMP_LT", "AT_AT", 
		"AT_GT", "AT_SIGN", "BANG", "BANG_BANG", "BANG_EQUAL", "CARET", "EQUAL", 
		"EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", "HASH_EQ", "HASH_GT", "HASH_GT_GT", 
		"HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", "HYPHEN_PIPE_HYPHEN", "LT", 
		"LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", "LT_LT", "LT_LT_EQ", 
		"LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", "PIPE_PIPE_SLASH", 
		"PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", "QMARK_HYPHEN", 
		"QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", "TIL_GT_TIL", "TIL_LTE_TIL", 
		"TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI", "ErrorCharacter",
	];

	private static readonly _LITERAL_NAMES: Array<string | undefined> = [
		undefined, undefined, undefined, undefined, undefined, undefined, undefined, 
		"','", "':'", "'::'", "'$'", "'$$'", "'*'", "'('", "')'", "'['", "']'", 
		"'{'", "'}'", undefined, undefined, undefined, undefined, undefined, "'.'", 
		undefined, undefined, undefined, undefined, undefined, "'&'", "'&&'", 
		"'&<'", "'@@'", "'@>'", "'@'", "'!'", "'!!'", "'!='", "'^'", "'='", "'=>'", 
		"'>'", "'>='", "'>>'", "'#'", "'#='", "'#>'", "'#>>'", "'##'", "'->'", 
		"'->>'", "'-|-'", "'<'", "'<='", "'<@'", "'<^'", "'<>'", "'<->'", "'<<'", 
		"'<<='", "'<?>'", "'-'", "'%'", "'|'", "'||'", "'||/'", "'|/'", "'+'", 
		"'?'", "'?&'", "'?#'", "'?-'", "'?|'", "'/'", "'~'", "'~='", "'~>=~'", 
		"'~>~'", "'~<=~'", "'~<~'", "'~*'", "'~~'", "';'",
	];
	private static readonly _SYMBOLIC_NAMES: Array<string | undefined> = [
		undefined, "BLOCK_COMMENT", "LINE_COMMENT", "WHITESPACE", "TRUE", "FALSE", 
		"FIELD", "COMMA", "COLON", "COLON_COLON", "DOLLAR", "DOLLAR_DOLLAR", "STAR", 
		"OPEN_PAREN", "CLOSE_PAREN", "OPEN_BRACKET", "CLOSE_BRACKET", "L_CURLY", 
		"R_CURLY", "BIT_STRING", "REGEX_STRING", "NUMERIC_LITERAL", "INTEGER_LITERAL", 
		"HEX_INTEGER_LITERAL", "DOT", "SINGLEQ_STRING_LITERAL", "DOUBLEQ_STRING_LITERAL", 
		"IDENTIFIER_VARIABLE", "IDENTIFIER_UNICODE", "IDENTIFIER", "AMP", "AMP_AMP", 
		"AMP_LT", "AT_AT", "AT_GT", "AT_SIGN", "BANG", "BANG_BANG", "BANG_EQUAL", 
		"CARET", "EQUAL", "EQUAL_GT", "GT", "GTE", "GT_GT", "HASH", "HASH_EQ", 
		"HASH_GT", "HASH_GT_GT", "HASH_HASH", "HYPHEN_GT", "HYPHEN_GT_GT", "HYPHEN_PIPE_HYPHEN", 
		"LT", "LTE", "LT_AT", "LT_CARET", "LT_GT", "LT_HYPHEN_GT", "LT_LT", "LT_LT_EQ", 
		"LT_QMARK_GT", "MINUS", "PERCENT", "PIPE", "PIPE_PIPE", "PIPE_PIPE_SLASH", 
		"PIPE_SLASH", "PLUS", "QMARK", "QMARK_AMP", "QMARK_HASH", "QMARK_HYPHEN", 
		"QMARK_PIPE", "SLASH", "TIL", "TIL_EQ", "TIL_GTE_TIL", "TIL_GT_TIL", "TIL_LTE_TIL", 
		"TIL_LT_TIL", "TIL_STAR", "TIL_TIL", "SEMI", "ErrorCharacter",
	];
	public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(FormulaLexer._LITERAL_NAMES, FormulaLexer._SYMBOLIC_NAMES, []);

	// @Override
	// @NotNull
	public get vocabulary(): Vocabulary {
		return FormulaLexer.VOCABULARY;
	}
	// tslint:enable:no-trailing-whitespace


	constructor(input: CharStream) {
		super(input);
		this._interp = new LexerATNSimulator(FormulaLexer._ATN, this);
	}

	// @Override
	public get grammarFileName(): string { return "FormulaLexer.g4"; }

	// @Override
	public get ruleNames(): string[] { return FormulaLexer.ruleNames; }

	// @Override
	public get serializedATN(): string { return FormulaLexer._serializedATN; }

	// @Override
	public get channelNames(): string[] { return FormulaLexer.channelNames; }

	// @Override
	public get modeNames(): string[] { return FormulaLexer.modeNames; }

	private static readonly _serializedATNSegments: number = 2;
	private static readonly _serializedATNSegment0: string =
		"\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02V\u0281\b\x01" +
		"\x04\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06" +
		"\x04\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r" +
		"\t\r\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t" +
		"\x12\x04\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t" +
		"\x17\x04\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t" +
		"\x1C\x04\x1D\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t" +
		"\"\x04#\t#\x04$\t$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x04)\t)\x04*\t*\x04" +
		"+\t+\x04,\t,\x04-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x043\t3\x04" +
		"4\t4\x045\t5\x046\t6\x047\t7\x048\t8\x049\t9\x04:\t:\x04;\t;\x04<\t<\x04" +
		"=\t=\x04>\t>\x04?\t?\x04@\t@\x04A\tA\x04B\tB\x04C\tC\x04D\tD\x04E\tE\x04" +
		"F\tF\x04G\tG\x04H\tH\x04I\tI\x04J\tJ\x04K\tK\x04L\tL\x04M\tM\x04N\tN\x04" +
		"O\tO\x04P\tP\x04Q\tQ\x04R\tR\x04S\tS\x04T\tT\x04U\tU\x04V\tV\x04W\tW\x04" +
		"X\tX\x04Y\tY\x04Z\tZ\x04[\t[\x04\\\t\\\x04]\t]\x04^\t^\x04_\t_\x04`\t" +
		"`\x04a\ta\x04b\tb\x04c\tc\x04d\td\x04e\te\x04f\tf\x04g\tg\x04h\th\x04" +
		"i\ti\x04j\tj\x04k\tk\x04l\tl\x04m\tm\x04n\tn\x04o\to\x04p\tp\x04q\tq\x04" +
		"r\tr\x04s\ts\x04t\tt\x04u\tu\x03\x02\x03\x02\x03\x03\x03\x03\x03\x04\x03" +
		"\x04\x03\x05\x03\x05\x03\x06\x03\x06\x03\x07\x03\x07\x03\b\x03\b\x03\t" +
		"\x03\t\x03\n\x03\n\x03\v\x03\v\x03\f\x03\f\x03\r\x03\r\x03\x0E\x03\x0E" +
		"\x03\x0F\x03\x0F\x03\x10\x03\x10\x03\x11\x03\x11\x03\x12\x03\x12\x03\x13" +
		"\x03\x13\x03\x14\x03\x14\x03\x15\x03\x15\x03\x16\x03\x16\x03\x17\x03\x17" +
		"\x03\x18\x03\x18\x03\x19\x03\x19\x03\x1A\x03\x1A\x03\x1B\x03\x1B\x03\x1C" +
		"\x03\x1C\x03\x1D\x03\x1D\x03\x1E\x03\x1E\x03\x1F\x03\x1F\x03\x1F\x03\x1F" +
		"\x07\x1F\u012A\n\x1F\f\x1F\x0E\x1F\u012D\v\x1F\x03\x1F\x03\x1F\x03 \x03" +
		" \x03 \x03 \x07 \u0135\n \f \x0E \u0138\v \x03 \x03 \x03!\x03!\x03!\x03" +
		"!\x03!\x03!\x07!\u0142\n!\f!\x0E!\u0145\v!\x03!\x03!\x03\"\x03\"\x03\"" +
		"\x03\"\x07\"\u014D\n\"\f\"\x0E\"\u0150\v\"\x03\"\x03\"\x03\"\x03#\x03" +
		"#\x03#\x03#\x07#\u0159\n#\f#\x0E#\u015C\v#\x03$\x06$\u015F\n$\r$\x0E$" +
		"\u0160\x03%\x03%\x03%\x03%\x03%\x03&\x03&\x03&\x03&\x03&\x03&\x03\'\x03" +
		"\'\x03\'\x03\'\x03\'\x03\'\x03(\x03(\x03)\x03)\x03*\x03*\x03*\x03+\x03" +
		"+\x03,\x03,\x03,\x03-\x03-\x03.\x03.\x03/\x03/\x030\x030\x031\x031\x03" +
		"2\x032\x033\x033\x034\x034\x034\x074\u0191\n4\f4\x0E4\u0194\v4\x034\x03" +
		"4\x035\x035\x035\x036\x066\u019C\n6\r6\x0E6\u019D\x036\x036\x066\u01A2" +
		"\n6\r6\x0E6\u01A3\x036\x036\x076\u01A8\n6\f6\x0E6\u01AB\v6\x036\x066\u01AE" +
		"\n6\r6\x0E6\u01AF\x056\u01B2\n6\x037\x067\u01B5\n7\r7\x0E7\u01B6\x037" +
		"\x037\x067\u01BB\n7\r7\x0E7\u01BC\x057\u01BF\n7\x038\x038\x038\x039\x03" +
		"9\x03:\x03:\x03;\x03;\x03<\x03<\x07<\u01CC\n<\f<\x0E<\u01CF\v<\x03<\x03" +
		"<\x03=\x03=\x07=\u01D5\n=\f=\x0E=\u01D8\v=\x03>\x03>\x07>\u01DC\n>\f>" +
		"\x0E>\u01DF\v>\x03?\x03?\x03@\x03@\x03@\x03A\x03A\x03A\x03B\x03B\x03B" +
		"\x03C\x03C\x03C\x03D\x03D\x03E\x03E\x03F\x03F\x03F\x03G\x03G\x03G\x03" +
		"H\x03H\x03I\x03I\x03J\x03J\x03J\x03K\x03K\x03L\x03L\x03L\x03M\x03M\x03" +
		"M\x03N\x03N\x03O\x03O\x03O\x03P\x03P\x03P\x03Q\x03Q\x03Q\x03Q\x03R\x03" +
		"R\x03R\x03S\x03S\x03S\x03T\x03T\x03T\x03T\x03U\x03U\x03U\x03U\x03V\x03" +
		"V\x03W\x03W\x03W\x03X\x03X\x03X\x03Y\x03Y\x03Y\x03Z\x03Z\x03Z\x03[\x03" +
		"[\x03[\x03[\x03\\\x03\\\x03\\\x03]\x03]\x03]\x03]\x03^\x03^\x03^\x03^" +
		"\x03_\x03_\x03`\x03`\x03a\x03a\x03b\x03b\x03b\x03c\x03c\x03c\x03c\x03" +
		"d\x03d\x03d\x03e\x03e\x03f\x03f\x03g\x03g\x03g\x03h\x03h\x03h\x03i\x03" +
		"i\x03i\x03j\x03j\x03j\x03k\x03k\x03l\x03l\x03m\x03m\x03m\x03n\x03n\x03" +
		"n\x03n\x03n\x03o\x03o\x03o\x03o\x03p\x03p\x03p\x03p\x03p\x03q\x03q\x03" +
		"q\x03q\x03r\x03r\x03r\x03s\x03s\x03s\x03t\x03t\x03u\x03u\x03\u01CD\x02" +
		"\x02v\x03\x02\x02\x05\x02\x02\x07\x02\x02\t\x02\x02\v\x02\x02\r\x02\x02" +
		"\x0F\x02\x02\x11\x02\x02\x13\x02\x02\x15\x02\x02\x17\x02\x02\x19\x02\x02" +
		"\x1B\x02\x02\x1D\x02\x02\x1F\x02\x02!\x02\x02#\x02\x02%\x02\x02\'\x02" +
		"\x02)\x02\x02+\x02\x02-\x02\x02/\x02\x021\x02\x023\x02\x025\x02\x027\x02" +
		"\x029\x02\x02;\x02\x02=\x02\x02?\x02\x02A\x02\x02C\x02\x03E\x02\x04G\x02" +
		"\x05I\x02\x06K\x02\x07M\x02\bO\x02\tQ\x02\nS\x02\vU\x02\fW\x02\rY\x02" +
		"\x0E[\x02\x0F]\x02\x10_\x02\x11a\x02\x12c\x02\x13e\x02\x14g\x02\x15i\x02" +
		"\x16k\x02\x17m\x02\x18o\x02\x19q\x02\x1As\x02\x1Bu\x02\x1Cw\x02\x1Dy\x02" +
		"\x1E{\x02\x1F}\x02 \x7F\x02!\x81\x02\"\x83\x02#\x85\x02$\x87\x02%\x89" +
		"\x02&\x8B\x02\'\x8D\x02(\x8F\x02)\x91\x02*\x93\x02+\x95\x02,\x97\x02-" +
		"\x99\x02.\x9B\x02/\x9D\x020\x9F\x021\xA1\x022\xA3\x023\xA5\x024\xA7\x02" +
		"5\xA9\x026\xAB\x027\xAD\x028\xAF\x029\xB1\x02:\xB3\x02;\xB5\x02<\xB7\x02" +
		"=\xB9\x02>\xBB\x02?\xBD\x02@\xBF\x02A\xC1\x02B\xC3\x02C\xC5\x02D\xC7\x02" +
		"E\xC9\x02F\xCB\x02G\xCD\x02H\xCF\x02I\xD1\x02J\xD3\x02K\xD5\x02L\xD7\x02" +
		"M\xD9\x02N\xDB\x02O\xDD\x02P\xDF\x02Q\xE1\x02R\xE3\x02S\xE5\x02T\xE7\x02" +
		"U\xE9\x02V\x03\x02\'\x04\x02CCcc\x04\x02DDdd\x04\x02EEee\x04\x02FFff\x04" +
		"\x02GGgg\x04\x02HHhh\x04\x02IIii\x04\x02JJjj\x04\x02KKkk\x04\x02LLll\x04" +
		"\x02MMmm\x04\x02NNnn\x04\x02OOoo\x04\x02PPpp\x04\x02QQqq\x04\x02RRrr\x04" +
		"\x02SSss\x04\x02TTtt\x04\x02UUuu\x04\x02VVvv\x04\x02WWww\x04\x02XXxx\x04" +
		"\x02YYyy\x04\x02ZZzz\x04\x02[[{{\x04\x02\\\\||\x04\x022;CH\x03\x022;\x04" +
		"\x02$$^^\x04\x02))^^\x04\x02^^bb\x04\x02\f\f\x0F\x0F\x05\x02\v\f\x0F\x0F" +
		"\"\"\x06\x02C\\aac|\xA3\x01\x07\x022;C\\aac|\xA3\x01\x05\x02C\\aac|\x06" +
		"\x022;C\\aac|\x02\u0276\x02C\x03\x02\x02\x02\x02E\x03\x02\x02\x02\x02" +
		"G\x03\x02\x02\x02\x02I\x03\x02\x02\x02\x02K\x03\x02\x02\x02\x02M\x03\x02" +
		"\x02\x02\x02O\x03\x02\x02\x02\x02Q\x03\x02\x02\x02\x02S\x03\x02\x02\x02" +
		"\x02U\x03\x02\x02\x02\x02W\x03\x02\x02\x02\x02Y\x03\x02\x02\x02\x02[\x03" +
		"\x02\x02\x02\x02]\x03\x02\x02\x02\x02_\x03\x02\x02\x02\x02a\x03\x02\x02" +
		"\x02\x02c\x03\x02\x02\x02\x02e\x03\x02\x02\x02\x02g\x03\x02\x02\x02\x02" +
		"i\x03\x02\x02\x02\x02k\x03\x02\x02\x02\x02m\x03\x02\x02\x02\x02o\x03\x02" +
		"\x02\x02\x02q\x03\x02\x02\x02\x02s\x03\x02\x02\x02\x02u\x03\x02\x02\x02" +
		"\x02w\x03\x02\x02\x02\x02y\x03\x02\x02\x02\x02{\x03\x02\x02\x02\x02}\x03" +
		"\x02\x02\x02\x02\x7F\x03\x02\x02\x02\x02\x81\x03\x02\x02\x02\x02\x83\x03" +
		"\x02\x02\x02\x02\x85\x03\x02\x02\x02\x02\x87\x03\x02\x02\x02\x02\x89\x03" +
		"\x02\x02\x02\x02\x8B\x03\x02\x02\x02\x02\x8D\x03\x02\x02\x02\x02\x8F\x03" +
		"\x02\x02\x02\x02\x91\x03\x02\x02\x02\x02\x93\x03\x02\x02\x02\x02\x95\x03" +
		"\x02\x02\x02\x02\x97\x03\x02\x02\x02\x02\x99\x03\x02\x02\x02\x02\x9B\x03" +
		"\x02\x02\x02\x02\x9D\x03\x02\x02\x02\x02\x9F\x03\x02\x02\x02\x02\xA1\x03" +
		"\x02\x02\x02\x02\xA3\x03\x02\x02\x02\x02\xA5\x03\x02\x02\x02\x02\xA7\x03" +
		"\x02\x02\x02\x02\xA9\x03\x02\x02\x02\x02\xAB\x03\x02\x02\x02\x02\xAD\x03" +
		"\x02\x02\x02\x02\xAF\x03\x02\x02\x02\x02\xB1\x03\x02\x02\x02\x02\xB3\x03" +
		"\x02\x02\x02\x02\xB5\x03\x02\x02\x02\x02\xB7\x03\x02\x02\x02\x02\xB9\x03" +
		"\x02\x02\x02\x02\xBB\x03\x02\x02\x02\x02\xBD\x03\x02\x02\x02\x02\xBF\x03" +
		"\x02\x02\x02\x02\xC1\x03\x02\x02\x02\x02\xC3\x03\x02\x02\x02\x02\xC5\x03" +
		"\x02\x02\x02\x02\xC7\x03\x02\x02\x02\x02\xC9\x03\x02\x02\x02\x02\xCB\x03" +
		"\x02\x02\x02\x02\xCD\x03\x02\x02\x02\x02\xCF\x03\x02\x02\x02\x02\xD1\x03" +
		"\x02\x02\x02\x02\xD3\x03\x02\x02\x02\x02\xD5\x03\x02\x02\x02\x02\xD7\x03" +
		"\x02\x02\x02\x02\xD9\x03\x02\x02\x02\x02\xDB\x03\x02\x02\x02\x02\xDD\x03" +
		"\x02\x02\x02\x02\xDF\x03\x02\x02\x02\x02\xE1\x03\x02\x02\x02\x02\xE3\x03" +
		"\x02\x02\x02\x02\xE5\x03\x02\x02\x02\x02\xE7\x03\x02\x02\x02\x02\xE9\x03" +
		"\x02\x02\x02\x03\xEB\x03\x02\x02\x02\x05\xED\x03\x02\x02\x02\x07\xEF\x03" +
		"\x02\x02\x02\t\xF1\x03\x02\x02\x02\v\xF3\x03\x02\x02\x02\r\xF5\x03\x02" +
		"\x02\x02\x0F\xF7\x03\x02\x02\x02\x11\xF9\x03\x02\x02\x02\x13\xFB\x03\x02" +
		"\x02\x02\x15\xFD\x03\x02\x02\x02\x17\xFF\x03\x02\x02\x02\x19\u0101\x03" +
		"\x02\x02\x02\x1B\u0103\x03\x02\x02\x02\x1D\u0105\x03\x02\x02\x02\x1F\u0107" +
		"\x03\x02\x02\x02!\u0109\x03\x02\x02\x02#\u010B\x03\x02\x02\x02%\u010D" +
		"\x03\x02\x02\x02\'\u010F\x03\x02\x02\x02)\u0111\x03\x02\x02\x02+\u0113" +
		"\x03\x02\x02\x02-\u0115\x03\x02\x02\x02/\u0117\x03\x02\x02\x021\u0119" +
		"\x03\x02\x02\x023\u011B\x03\x02\x02\x025\u011D\x03\x02\x02\x027\u011F" +
		"\x03\x02\x02\x029\u0121\x03\x02\x02\x02;\u0123\x03\x02\x02\x02=\u0125" +
		"\x03\x02\x02\x02?\u0130\x03\x02\x02\x02A\u013B\x03\x02\x02\x02C\u0148" +
		"\x03\x02\x02\x02E\u0154\x03\x02\x02\x02G\u015E\x03\x02\x02\x02I\u0162" +
		"\x03\x02\x02\x02K\u0167\x03\x02\x02\x02M\u016D\x03\x02\x02\x02O\u0173" +
		"\x03\x02\x02\x02Q\u0175\x03\x02\x02\x02S\u0177\x03\x02\x02\x02U\u017A" +
		"\x03\x02\x02\x02W\u017C\x03\x02\x02\x02Y\u017F\x03\x02\x02\x02[\u0181" +
		"\x03\x02\x02\x02]\u0183\x03\x02\x02\x02_\u0185\x03\x02\x02\x02a\u0187" +
		"\x03\x02\x02\x02c\u0189\x03\x02\x02\x02e\u018B\x03\x02\x02\x02g\u018D" +
		"\x03\x02\x02\x02i\u0197\x03\x02\x02\x02k\u019B\x03\x02\x02\x02m\u01B4" +
		"\x03\x02\x02\x02o\u01C0\x03\x02\x02\x02q\u01C3\x03\x02\x02\x02s\u01C5" +
		"\x03\x02\x02\x02u\u01C7\x03\x02\x02\x02w\u01C9\x03\x02\x02\x02y\u01D2" +
		"\x03\x02\x02\x02{\u01D9\x03\x02\x02\x02}\u01E0\x03\x02\x02\x02\x7F\u01E2" +
		"\x03\x02\x02\x02\x81\u01E5\x03\x02\x02\x02\x83\u01E8\x03\x02\x02\x02\x85" +
		"\u01EB\x03\x02\x02\x02\x87\u01EE\x03\x02\x02\x02\x89\u01F0\x03\x02\x02" +
		"\x02\x8B\u01F2\x03\x02\x02\x02\x8D\u01F5\x03\x02\x02\x02\x8F\u01F8\x03" +
		"\x02\x02\x02\x91\u01FA\x03\x02\x02\x02\x93\u01FC\x03\x02\x02\x02\x95\u01FF" +
		"\x03\x02\x02\x02\x97\u0201\x03\x02\x02\x02\x99\u0204\x03\x02\x02\x02\x9B" +
		"\u0207\x03\x02\x02\x02\x9D\u0209\x03\x02\x02\x02\x9F\u020C\x03\x02\x02" +
		"\x02\xA1\u020F\x03\x02\x02\x02\xA3\u0213\x03\x02\x02\x02\xA5\u0216\x03" +
		"\x02\x02\x02\xA7\u0219\x03\x02\x02\x02\xA9\u021D\x03\x02\x02\x02\xAB\u0221" +
		"\x03\x02\x02\x02\xAD\u0223\x03\x02\x02\x02\xAF\u0226\x03\x02\x02\x02\xB1" +
		"\u0229\x03\x02\x02\x02\xB3\u022C\x03\x02\x02\x02\xB5\u022F\x03\x02\x02" +
		"\x02\xB7\u0233\x03\x02\x02\x02\xB9\u0236\x03\x02\x02\x02\xBB\u023A\x03" +
		"\x02\x02\x02\xBD\u023E\x03\x02\x02\x02\xBF\u0240\x03\x02\x02\x02\xC1\u0242" +
		"\x03\x02\x02\x02\xC3\u0244\x03\x02\x02\x02\xC5\u0247\x03\x02\x02\x02\xC7" +
		"\u024B\x03\x02\x02\x02\xC9\u024E\x03\x02\x02\x02\xCB\u0250\x03\x02\x02" +
		"\x02\xCD\u0252\x03\x02\x02\x02\xCF\u0255\x03\x02\x02\x02\xD1\u0258\x03" +
		"\x02\x02\x02\xD3\u025B\x03\x02\x02\x02\xD5\u025E\x03\x02\x02\x02\xD7\u0260" +
		"\x03\x02\x02\x02\xD9\u0262\x03\x02\x02\x02\xDB\u0265\x03\x02\x02\x02\xDD" +
		"\u026A\x03\x02\x02\x02\xDF\u026E\x03\x02\x02\x02\xE1\u0273\x03\x02\x02" +
		"\x02\xE3\u0277\x03\x02\x02\x02\xE5\u027A\x03\x02\x02\x02\xE7\u027D\x03" +
		"\x02\x02\x02\xE9\u027F\x03\x02\x02\x02\xEB\xEC\t\x02\x02\x02\xEC\x04\x03" +
		"\x02\x02\x02\xED\xEE\t\x03\x02\x02\xEE\x06\x03\x02\x02\x02\xEF\xF0\t\x04" +
		"\x02\x02\xF0\b\x03\x02\x02\x02\xF1\xF2\t\x05\x02\x02\xF2\n\x03\x02\x02" +
		"\x02\xF3\xF4\t\x06\x02\x02\xF4\f\x03\x02\x02\x02\xF5\xF6\t\x07\x02\x02" +
		"\xF6\x0E\x03\x02\x02\x02\xF7\xF8\t\b\x02\x02\xF8\x10\x03\x02\x02\x02\xF9" +
		"\xFA\t\t\x02\x02\xFA\x12\x03\x02\x02\x02\xFB\xFC\t\n\x02\x02\xFC\x14\x03" +
		"\x02\x02\x02\xFD\xFE\t\v\x02\x02\xFE\x16\x03\x02\x02\x02\xFF\u0100\t\f" +
		"\x02\x02\u0100\x18\x03\x02\x02\x02\u0101\u0102\t\r\x02\x02\u0102\x1A\x03" +
		"\x02\x02\x02\u0103\u0104\t\x0E\x02\x02\u0104\x1C\x03\x02\x02\x02\u0105" +
		"\u0106\t\x0F\x02\x02\u0106\x1E\x03\x02\x02\x02\u0107\u0108\t\x10\x02\x02" +
		"\u0108 \x03\x02\x02\x02\u0109\u010A\t\x11\x02\x02\u010A\"\x03\x02\x02" +
		"\x02\u010B\u010C\t\x12\x02\x02\u010C$\x03\x02\x02\x02\u010D\u010E\t\x13" +
		"\x02\x02\u010E&\x03\x02\x02\x02\u010F\u0110\t\x14\x02\x02\u0110(\x03\x02" +
		"\x02\x02\u0111\u0112\t\x15\x02\x02\u0112*\x03\x02\x02\x02\u0113\u0114" +
		"\t\x16\x02\x02\u0114,\x03\x02\x02\x02\u0115\u0116\t\x17\x02\x02\u0116" +
		".\x03\x02\x02\x02\u0117\u0118\t\x18\x02\x02\u01180\x03\x02\x02\x02\u0119" +
		"\u011A\t\x19\x02\x02\u011A2\x03\x02\x02\x02\u011B\u011C\t\x1A\x02\x02" +
		"\u011C4\x03\x02\x02\x02\u011D\u011E\t\x1B\x02\x02\u011E6\x03\x02\x02\x02" +
		"\u011F\u0120\x07a\x02\x02\u01208\x03\x02\x02\x02\u0121\u0122\t\x1C\x02" +
		"\x02\u0122:\x03\x02\x02\x02\u0123\u0124\t\x1D\x02\x02\u0124<\x03\x02\x02" +
		"\x02\u0125\u012B\x07$\x02\x02\u0126\u0127\x07^\x02\x02\u0127\u012A\v\x02" +
		"\x02\x02\u0128\u012A\n\x1E\x02\x02\u0129\u0126\x03\x02\x02\x02\u0129\u0128" +
		"\x03\x02\x02\x02\u012A\u012D\x03\x02\x02\x02\u012B\u0129\x03\x02\x02\x02" +
		"\u012B\u012C\x03\x02\x02\x02\u012C\u012E\x03\x02\x02\x02\u012D\u012B\x03" +
		"\x02\x02\x02\u012E\u012F\x07$\x02\x02\u012F>\x03\x02\x02\x02\u0130\u0136" +
		"\x07)\x02\x02\u0131\u0132\x07^\x02\x02\u0132\u0135\v\x02\x02\x02\u0133" +
		"\u0135\n\x1F\x02\x02\u0134\u0131\x03\x02\x02\x02\u0134\u0133\x03\x02\x02" +
		"\x02\u0135\u0138\x03\x02\x02\x02\u0136\u0134\x03\x02\x02\x02\u0136\u0137" +
		"\x03\x02\x02\x02\u0137\u0139\x03\x02\x02\x02\u0138\u0136\x03\x02\x02\x02" +
		"\u0139\u013A\x07)\x02\x02\u013A@\x03\x02\x02\x02\u013B\u0143\x07b\x02" +
		"\x02\u013C\u013D\x07^\x02\x02\u013D\u0142\v\x02\x02\x02\u013E\u013F\x07" +
		"b\x02\x02\u013F\u0142\x07b\x02\x02\u0140\u0142\n \x02\x02\u0141\u013C" +
		"\x03\x02\x02\x02\u0141\u013E\x03\x02\x02\x02\u0141\u0140\x03\x02\x02\x02" +
		"\u0142\u0145\x03\x02\x02\x02\u0143\u0141\x03\x02\x02\x02\u0143\u0144\x03" +
		"\x02\x02\x02\u0144\u0146\x03\x02\x02\x02\u0145\u0143\x03\x02\x02\x02\u0146" +
		"\u0147\x07b\x02\x02\u0147B\x03\x02\x02\x02\u0148\u0149\x071\x02\x02\u0149" +
		"\u014A\x07,\x02\x02\u014A\u014E\x03\x02\x02\x02\u014B\u014D\v\x02\x02" +
		"\x02\u014C\u014B\x03\x02\x02\x02\u014D\u0150\x03\x02\x02\x02\u014E\u014C" +
		"\x03\x02\x02\x02\u014E\u014F\x03\x02\x02\x02\u014F\u0151\x03\x02\x02\x02" +
		"\u0150\u014E\x03\x02\x02\x02\u0151\u0152\x07,\x02\x02\u0152\u0153\x07" +
		"1\x02\x02\u0153D\x03\x02\x02\x02\u0154\u0155\x071\x02\x02\u0155\u0156" +
		"\x071\x02\x02\u0156\u015A\x03\x02\x02\x02\u0157\u0159\n!\x02\x02\u0158" +
		"\u0157\x03\x02\x02\x02\u0159\u015C\x03\x02\x02\x02\u015A\u0158\x03\x02" +
		"\x02\x02\u015A\u015B\x03\x02\x02\x02\u015BF\x03\x02\x02\x02\u015C\u015A" +
		"\x03\x02\x02\x02\u015D\u015F\t\"\x02\x02\u015E\u015D\x03\x02\x02\x02\u015F" +
		"\u0160\x03\x02\x02\x02\u0160\u015E\x03\x02\x02\x02\u0160\u0161\x03\x02" +
		"\x02\x02\u0161H\x03\x02\x02\x02\u0162\u0163\x05)\x15\x02\u0163\u0164\x05" +
		"%\x13\x02\u0164\u0165\x05+\x16\x02\u0165\u0166\x05\v\x06\x02\u0166J\x03" +
		"\x02\x02\x02\u0167\u0168\x05\r\x07\x02\u0168\u0169\x05\x03\x02\x02\u0169" +
		"\u016A\x05\x19\r\x02\u016A\u016B\x05\'\x14\x02\u016B\u016C\x05\v\x06\x02" +
		"\u016CL\x03\x02\x02\x02\u016D\u016E\x05\r\x07\x02\u016E\u016F\x05\x13" +
		"\n\x02\u016F\u0170\x05\v\x06\x02\u0170\u0171\x05\x19\r\x02\u0171\u0172" +
		"\x05\t\x05\x02\u0172N\x03\x02\x02\x02\u0173\u0174\x07.\x02\x02\u0174P" +
		"\x03\x02\x02\x02\u0175\u0176\x07<\x02\x02\u0176R\x03\x02\x02\x02\u0177" +
		"\u0178\x07<\x02\x02\u0178\u0179\x07<\x02\x02\u0179T\x03\x02\x02\x02\u017A" +
		"\u017B\x07&\x02\x02\u017BV\x03\x02\x02\x02\u017C\u017D\x07&\x02\x02\u017D" +
		"\u017E\x07&\x02\x02\u017EX\x03\x02\x02\x02\u017F\u0180\x07,\x02\x02\u0180" +
		"Z\x03\x02\x02\x02\u0181\u0182\x07*\x02\x02\u0182\\\x03\x02\x02\x02\u0183" +
		"\u0184\x07+\x02\x02\u0184^\x03\x02\x02\x02\u0185\u0186\x07]\x02\x02\u0186" +
		"`\x03\x02\x02\x02\u0187\u0188\x07_\x02\x02\u0188b\x03\x02\x02\x02\u0189" +
		"\u018A\x07}\x02\x02\u018Ad\x03\x02\x02\x02\u018B\u018C\x07\x7F\x02\x02" +
		"\u018Cf\x03\x02\x02\x02\u018D\u018E\x05\x05\x03\x02\u018E\u0192\x07)\x02" +
		"\x02\u018F\u0191\x0423\x02\u0190\u018F\x03\x02\x02\x02\u0191\u0194\x03" +
		"\x02\x02\x02\u0192\u0190\x03\x02\x02\x02\u0192\u0193\x03\x02\x02\x02\u0193" +
		"\u0195\x03\x02\x02\x02\u0194\u0192\x03\x02\x02\x02\u0195\u0196\x07)\x02" +
		"\x02\u0196h\x03\x02\x02\x02\u0197\u0198\x05\v\x06\x02\u0198\u0199\x05" +
		"? \x02\u0199j\x03\x02\x02\x02\u019A\u019C\x05;\x1E\x02\u019B\u019A\x03" +
		"\x02\x02\x02\u019C\u019D\x03\x02\x02\x02\u019D\u019B\x03\x02\x02\x02\u019D" +
		"\u019E\x03\x02\x02\x02\u019E\u019F\x03\x02\x02\x02\u019F\u01A1\x070\x02" +
		"\x02\u01A0\u01A2\x05;\x1E\x02\u01A1\u01A0\x03\x02\x02\x02\u01A2\u01A3" +
		"\x03\x02\x02\x02\u01A3\u01A1\x03\x02\x02\x02\u01A3\u01A4\x03\x02\x02\x02" +
		"\u01A4\u01B1\x03\x02\x02\x02\u01A5\u01A9\x05\v\x06\x02\u01A6\u01A8\x07" +
		"/\x02\x02\u01A7\u01A6\x03\x02\x02\x02\u01A8\u01AB\x03\x02\x02\x02\u01A9" +
		"\u01A7\x03\x02\x02\x02\u01A9\u01AA\x03\x02\x02\x02\u01AA\u01AD\x03\x02" +
		"\x02\x02\u01AB\u01A9\x03\x02\x02\x02\u01AC\u01AE\x05;\x1E\x02\u01AD\u01AC" +
		"\x03\x02\x02\x02\u01AE\u01AF\x03\x02\x02\x02\u01AF\u01AD\x03\x02\x02\x02" +
		"\u01AF\u01B0\x03\x02\x02\x02\u01B0\u01B2\x03\x02\x02\x02\u01B1\u01A5\x03" +
		"\x02\x02\x02\u01B1\u01B2\x03\x02\x02\x02\u01B2l\x03\x02\x02\x02\u01B3" +
		"\u01B5\x05;\x1E\x02\u01B4\u01B3\x03\x02\x02\x02\u01B5\u01B6\x03\x02\x02" +
		"\x02\u01B6\u01B4\x03\x02\x02\x02\u01B6\u01B7\x03\x02\x02\x02\u01B7\u01BE" +
		"\x03\x02\x02\x02\u01B8\u01BA\x05\v\x06\x02\u01B9\u01BB\x05;\x1E\x02\u01BA" +
		"\u01B9\x03\x02\x02\x02\u01BB\u01BC\x03\x02\x02\x02\u01BC\u01BA\x03\x02" +
		"\x02\x02\u01BC\u01BD\x03\x02\x02\x02\u01BD\u01BF\x03\x02\x02\x02\u01BE" +
		"\u01B8\x03\x02\x02\x02\u01BE\u01BF\x03\x02\x02\x02\u01BFn\x03\x02\x02" +
		"\x02\u01C0\u01C1\x07z\x02\x02\u01C1\u01C2\x05? \x02\u01C2p\x03\x02\x02" +
		"\x02\u01C3\u01C4\x070\x02\x02\u01C4r\x03\x02\x02\x02\u01C5\u01C6\x05?" +
		" \x02\u01C6t\x03\x02\x02\x02\u01C7\u01C8\x05=\x1F\x02\u01C8v\x03\x02\x02" +
		"\x02\u01C9\u01CD\x07}\x02\x02\u01CA\u01CC\v\x02\x02\x02\u01CB\u01CA\x03" +
		"\x02\x02\x02\u01CC\u01CF\x03\x02\x02\x02\u01CD\u01CE\x03\x02\x02\x02\u01CD" +
		"\u01CB\x03\x02\x02\x02\u01CE\u01D0\x03\x02\x02\x02\u01CF\u01CD\x03\x02" +
		"\x02\x02\u01D0\u01D1\x07\x7F\x02\x02\u01D1x\x03\x02\x02\x02\u01D2\u01D6" +
		"\t#\x02\x02\u01D3\u01D5\t$\x02\x02\u01D4\u01D3\x03\x02\x02\x02\u01D5\u01D8" +
		"\x03\x02\x02\x02\u01D6\u01D4\x03\x02\x02\x02\u01D6\u01D7\x03\x02\x02\x02" +
		"\u01D7z\x03\x02\x02\x02\u01D8\u01D6\x03\x02\x02\x02\u01D9\u01DD\t%\x02" +
		"\x02\u01DA\u01DC\t&\x02\x02\u01DB\u01DA\x03\x02\x02\x02\u01DC\u01DF\x03" +
		"\x02\x02\x02\u01DD\u01DB\x03\x02\x02\x02\u01DD\u01DE\x03\x02\x02\x02\u01DE" +
		"|\x03\x02\x02\x02\u01DF\u01DD\x03\x02\x02\x02\u01E0\u01E1\x07(\x02\x02" +
		"\u01E1~\x03\x02\x02\x02\u01E2\u01E3\x07(\x02\x02\u01E3\u01E4\x07(\x02" +
		"\x02\u01E4\x80\x03\x02\x02\x02\u01E5\u01E6\x07(\x02\x02\u01E6\u01E7\x07" +
		">\x02\x02\u01E7\x82\x03\x02\x02\x02\u01E8\u01E9\x07B\x02\x02\u01E9\u01EA" +
		"\x07B\x02\x02\u01EA\x84\x03\x02\x02\x02\u01EB\u01EC\x07B\x02\x02\u01EC" +
		"\u01ED\x07@\x02\x02\u01ED\x86\x03\x02\x02\x02\u01EE\u01EF\x07B\x02\x02" +
		"\u01EF\x88\x03\x02\x02\x02\u01F0\u01F1\x07#\x02\x02\u01F1\x8A\x03\x02" +
		"\x02\x02\u01F2\u01F3\x07#\x02\x02\u01F3\u01F4\x07#\x02\x02\u01F4\x8C\x03" +
		"\x02\x02\x02\u01F5\u01F6\x07#\x02\x02\u01F6\u01F7\x07?\x02\x02\u01F7\x8E" +
		"\x03\x02\x02\x02\u01F8\u01F9\x07`\x02\x02\u01F9\x90\x03\x02\x02\x02\u01FA" +
		"\u01FB\x07?\x02\x02\u01FB\x92\x03\x02\x02\x02\u01FC\u01FD\x07?\x02\x02" +
		"\u01FD\u01FE\x07@\x02\x02\u01FE\x94\x03\x02\x02\x02\u01FF\u0200\x07@\x02" +
		"\x02\u0200\x96\x03\x02\x02\x02\u0201\u0202\x07@\x02\x02\u0202\u0203\x07" +
		"?\x02\x02\u0203\x98\x03\x02\x02\x02\u0204\u0205\x07@\x02\x02\u0205\u0206" +
		"\x07@\x02\x02\u0206\x9A\x03\x02\x02\x02\u0207\u0208\x07%\x02\x02\u0208" +
		"\x9C\x03\x02\x02\x02\u0209\u020A\x07%\x02\x02\u020A\u020B\x07?\x02\x02" +
		"\u020B\x9E\x03\x02\x02\x02\u020C\u020D\x07%\x02\x02\u020D\u020E\x07@\x02" +
		"\x02\u020E\xA0";
	private static readonly _serializedATNSegment1: string =
		"\x03\x02\x02\x02\u020F\u0210\x07%\x02\x02\u0210\u0211\x07@\x02\x02\u0211" +
		"\u0212\x07@\x02\x02\u0212\xA2\x03\x02\x02\x02\u0213\u0214\x07%\x02\x02" +
		"\u0214\u0215\x07%\x02\x02\u0215\xA4\x03\x02\x02\x02\u0216\u0217\x07/\x02" +
		"\x02\u0217\u0218\x07@\x02\x02\u0218\xA6\x03\x02\x02\x02\u0219\u021A\x07" +
		"/\x02\x02\u021A\u021B\x07@\x02\x02\u021B\u021C\x07@\x02\x02\u021C\xA8" +
		"\x03\x02\x02\x02\u021D\u021E\x07/\x02\x02\u021E\u021F\x07~\x02\x02\u021F" +
		"\u0220\x07/\x02\x02\u0220\xAA\x03\x02\x02\x02\u0221\u0222\x07>\x02\x02" +
		"\u0222\xAC\x03\x02\x02\x02\u0223\u0224\x07>\x02\x02\u0224\u0225\x07?\x02" +
		"\x02\u0225\xAE\x03\x02\x02\x02\u0226\u0227\x07>\x02\x02\u0227\u0228\x07" +
		"B\x02\x02\u0228\xB0\x03\x02\x02\x02\u0229\u022A\x07>\x02\x02\u022A\u022B" +
		"\x07`\x02\x02\u022B\xB2\x03\x02\x02\x02\u022C\u022D\x07>\x02\x02\u022D" +
		"\u022E\x07@\x02\x02\u022E\xB4\x03\x02\x02\x02\u022F\u0230\x07>\x02\x02" +
		"\u0230\u0231\x07/\x02\x02\u0231\u0232\x07@\x02\x02\u0232\xB6\x03\x02\x02" +
		"\x02\u0233\u0234\x07>\x02\x02\u0234\u0235\x07>\x02\x02\u0235\xB8\x03\x02" +
		"\x02\x02\u0236\u0237\x07>\x02\x02\u0237\u0238\x07>\x02\x02\u0238\u0239" +
		"\x07?\x02\x02\u0239\xBA\x03\x02\x02\x02\u023A\u023B\x07>\x02\x02\u023B" +
		"\u023C\x07A\x02\x02\u023C\u023D\x07@\x02\x02\u023D\xBC\x03\x02\x02\x02" +
		"\u023E\u023F\x07/\x02\x02\u023F\xBE\x03\x02\x02\x02\u0240\u0241\x07\'" +
		"\x02\x02\u0241\xC0\x03\x02\x02\x02\u0242\u0243\x07~\x02\x02\u0243\xC2" +
		"\x03\x02\x02\x02\u0244\u0245\x07~\x02\x02\u0245\u0246\x07~\x02\x02\u0246" +
		"\xC4\x03\x02\x02\x02\u0247\u0248\x07~\x02\x02\u0248\u0249\x07~\x02\x02" +
		"\u0249\u024A\x071\x02\x02\u024A\xC6\x03\x02\x02\x02\u024B\u024C\x07~\x02" +
		"\x02\u024C\u024D\x071\x02\x02\u024D\xC8\x03\x02\x02\x02\u024E\u024F\x07" +
		"-\x02\x02\u024F\xCA\x03\x02\x02\x02\u0250\u0251\x07A\x02\x02\u0251\xCC" +
		"\x03\x02\x02\x02\u0252\u0253\x07A\x02\x02\u0253\u0254\x07(\x02\x02\u0254" +
		"\xCE\x03\x02\x02\x02\u0255\u0256\x07A\x02\x02\u0256\u0257\x07%\x02\x02" +
		"\u0257\xD0\x03\x02\x02\x02\u0258\u0259\x07A\x02\x02\u0259\u025A\x07/\x02" +
		"\x02\u025A\xD2\x03\x02\x02\x02\u025B\u025C\x07A\x02\x02\u025C\u025D\x07" +
		"~\x02\x02\u025D\xD4\x03\x02\x02\x02\u025E\u025F\x071\x02\x02\u025F\xD6" +
		"\x03\x02\x02\x02\u0260\u0261\x07\x80\x02\x02\u0261\xD8\x03\x02\x02\x02" +
		"\u0262\u0263\x07\x80\x02\x02\u0263\u0264\x07?\x02\x02\u0264\xDA\x03\x02" +
		"\x02\x02\u0265\u0266\x07\x80\x02\x02\u0266\u0267\x07@\x02\x02\u0267\u0268" +
		"\x07?\x02\x02\u0268\u0269\x07\x80\x02\x02\u0269\xDC\x03\x02\x02\x02\u026A" +
		"\u026B\x07\x80\x02\x02\u026B\u026C\x07@\x02\x02\u026C\u026D\x07\x80\x02" +
		"\x02\u026D\xDE\x03\x02\x02\x02\u026E\u026F\x07\x80\x02\x02\u026F\u0270" +
		"\x07>\x02\x02\u0270\u0271\x07?\x02\x02\u0271\u0272\x07\x80\x02\x02\u0272" +
		"\xE0\x03\x02\x02\x02\u0273\u0274\x07\x80\x02\x02\u0274\u0275\x07>\x02" +
		"\x02\u0275\u0276\x07\x80\x02\x02\u0276\xE2\x03\x02\x02\x02\u0277\u0278" +
		"\x07\x80\x02\x02\u0278\u0279\x07,\x02\x02\u0279\xE4\x03\x02\x02\x02\u027A" +
		"\u027B\x07\x80\x02\x02\u027B\u027C\x07\x80\x02\x02\u027C\xE6\x03\x02\x02" +
		"\x02\u027D\u027E\x07=\x02\x02\u027E\xE8\x03\x02\x02\x02\u027F\u0280\v" +
		"\x02\x02\x02\u0280\xEA\x03\x02\x02\x02\x18\x02\u0129\u012B\u0134\u0136" +
		"\u0141\u0143\u014E\u015A\u0160\u0192\u019D\u01A3\u01A9\u01AF\u01B1\u01B6" +
		"\u01BC\u01BE\u01CD\u01D6\u01DD\x02";
	public static readonly _serializedATN: string = Utils.join(
		[
			FormulaLexer._serializedATNSegment0,
			FormulaLexer._serializedATNSegment1,
		],
		"",
	);
	public static __ATN: ATN;
	public static get _ATN(): ATN {
		if (!FormulaLexer.__ATN) {
			FormulaLexer.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(FormulaLexer._serializedATN));
		}

		return FormulaLexer.__ATN;
	}

}

